﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO.IsolatedStorage;
using System.Windows.Media.Imaging;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Collections.Generic;

namespace MangaKurosagi
{
    public class StorageHelper:ImageHelper
    {
        public static void SaveUnfinishXML(string fileName, List<ChapUnfinish> Data)
        {
            XmlWriterSettings xmlWriterSetting = new XmlWriterSettings();
            xmlWriterSetting.Indent = true;
            // Lấy thông tin IsolateStorage
            using (IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
            {
                // Tạo một FileStream để tạo file hay mở file
                using (IsolatedStorageFileStream Stream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.OpenOrCreate, isoStorage))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(List<ChapUnfinish>));
                    using (XmlWriter xmlWriter = XmlWriter.Create(Stream, xmlWriterSetting))
                    {
                        // Viết dữ liệu theo Serialize
                        serializer.Serialize(xmlWriter, Data);
                    }
                }
            }
        }
        public static List<ChapUnfinish> LoadUnfinishXML(string fileName)
        {
            List<ChapUnfinish> Source = new List<ChapUnfinish>();
            using (IsolatedStorageFile File = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (File.FileExists(fileName))
                {
                    using (IsolatedStorageFileStream FileStream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.Open, File))
                    {
                        // Trong FileStream thực hiện Deserialize
                        XmlSerializer serialize = new XmlSerializer(typeof(List<ChapUnfinish>));
                        // Ép kiểu về đúng kiểu ban đầu và Gán lại cho Source 
                        Source = (List<ChapUnfinish>)serialize.Deserialize(FileStream);
                    };
                };
                return Source;
            }
        }
        public static void FixErrorXmlFile(string fileName)
        {
            using (IsolatedStorageFile File = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (File.FileExists(fileName))
                {
                    File.DeleteFile(fileName);
                }
            }
        }
        public static void SaveFarviousXML(string fileName, List<Stories> Data)
        {
            XmlWriterSettings xmlWriterSetting = new XmlWriterSettings();
            xmlWriterSetting.Indent = true;
            // Lấy thông tin IsolateStorage
            using (IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
            {
                // Tạo một FileStream để tạo file hay mở file
                using (IsolatedStorageFileStream Stream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.OpenOrCreate, isoStorage))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(List<Stories>));
                    using (XmlWriter xmlWriter = XmlWriter.Create(Stream, xmlWriterSetting))
                    {
                        // Viết dữ liệu theo Serialize
                        serializer.Serialize(xmlWriter, Data);
                    }
                }
            }
        }
        public static List<Stories> LoadFarviousXML(string fileName)
        {
            List<Stories> Source = new List<Stories>();
            using (IsolatedStorageFile File = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (File.FileExists(fileName))
                {
                    using (IsolatedStorageFileStream FileStream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.Open, File))
                    {
                        // Trong FileStream thực hiện Deserialize
                        XmlSerializer serialize = new XmlSerializer(typeof(List<Stories>));
                        // Ép kiểu về đúng kiểu ban đầu và Gán lại cho Source 
                        Source = (List<Stories>)serialize.Deserialize(FileStream);
                    };
                };
                return Source;
            }
        }

        //public static void saveXML(string fileName,List<Chap> Data)
        //{
        //    XmlWriterSettings xmlWriterSetting = new XmlWriterSettings();
        //    xmlWriterSetting.Indent = true;
        //    // Lấy thông tin IsolateStorage
        //    using (IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
        //    {
        //        // Tạo một FileStream để tạo file hay mở file
        //        using (IsolatedStorageFileStream Stream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.OpenOrCreate, isoStorage))
        //        {
        //                XmlSerializer serializer = new XmlSerializer(typeof(List<Chap>));
        //                using (XmlWriter xmlWriter = XmlWriter.Create(Stream, xmlWriterSetting))
        //                {
        //                    // Viết dữ liệu theo Serialize
        //                    serializer.Serialize(xmlWriter, Data);
        //                }
        //            }
        //        }
        //}
        //public static List<Chap> ReadDataFromXML(string fileName)
        //{
        //    List<Chap> Source = new List<Chap>();
        //    using (IsolatedStorageFile File = IsolatedStorageFile.GetUserStoreForApplication())
        //    {
        //        if (File.FileExists(fileName))
        //        {
        //            using (IsolatedStorageFileStream FileStream = new IsolatedStorageFileStream(fileName, System.IO.FileMode.Open, File))
        //            {
        //                // Trong FileStream thực hiện Deserialize
        //                XmlSerializer serialize = new XmlSerializer(typeof(List<Chap>));
        //                // Ép kiểu về đúng kiểu ban đầu và Gán lại cho Source 
        //                Source = (List<Chap>)serialize.Deserialize(FileStream);
        //            };
        //        };
        //        return Source;
        //    }                
        //}
    }
}
